home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / wrnsr094 / message.frm < prev    next >
Text File  |  1995-05-08  |  10KB  |  340 lines

  1. VERSION 2.00
  2. Begin Form Message 
  3.    Caption         =   "Messages"
  4.    ClientHeight    =   8310
  5.    ClientLeft      =   165
  6.    ClientTop       =   345
  7.    ClientWidth     =   5085
  8.    Height          =   8715
  9.    Icon            =   MESSAGE.FRX:0000
  10.    Left            =   105
  11.    LinkMode        =   1  'Source
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    ScaleHeight     =   8310
  15.    ScaleWidth      =   5085
  16.    Top             =   0
  17.    Width           =   5205
  18.    Begin PictureBox List1 
  19.       BackColor       =   &H000000FF&
  20.       Height          =   1000
  21.       Left            =   0
  22.       ScaleHeight     =   975
  23.       ScaleWidth      =   975
  24.       TabIndex        =   2
  25.       Top             =   0
  26.       Width           =   1000
  27.    End
  28.    Begin ComboBox Combo1 
  29.       BackColor       =   &H00C0FFC0&
  30.       Height          =   300
  31.       Left            =   480
  32.       TabIndex        =   0
  33.       Text            =   "No Mail or News available"
  34.       Top             =   120
  35.       Width           =   4575
  36.    End
  37.    Begin PictureBox catchup_btn 
  38.       Height          =   495
  39.       Left            =   0
  40.       Picture         =   MESSAGE.FRX:0302
  41.       ScaleHeight     =   465
  42.       ScaleWidth      =   465
  43.       TabIndex        =   1
  44.       Top             =   0
  45.       Width           =   495
  46.    End
  47. End
  48. Function calc_usercode (ByVal userid$) As Integer
  49.    total! = 0
  50.    For i% = 1 To Len(userid$)
  51.       ch% = Asc(Mid$(userid$, i%, 1))
  52.       total! = total! + Int(ch% / 16) * 17 + (ch% Mod 16) * 23
  53.    Next i%
  54.    total! = total! Mod 32767
  55.    calc_usercode = total! - 1309
  56. End Function
  57.  
  58. '
  59. Sub catchup_btn_Click ()
  60.    If message.combo1.listcount = 0 Then
  61.       Unload edit
  62.       End
  63.    End If
  64.    Call clear_msg_list
  65.    If reading_mail Then
  66.       Kill mail_file$ + ".f"
  67.       Kill mail_file$ + ".i"
  68.    Else
  69.       If message.combo1.listindex <> -1 Then
  70.          Call make_dir(message.combo1.list(message.combo1.listindex), dir_name$)
  71.          Kill dir_name$ + "*.*"
  72.       End If
  73.    End If
  74.    cur_item = message.combo1.listindex
  75.    message.combo1.RemoveItem message.combo1.listindex
  76.    If cur_item < message.combo1.listcount Then
  77.       message.combo1.listindex = cur_item
  78.    Else
  79.       message.combo1.listindex = message.combo1.listcount - 1
  80.    End If
  81. End Sub
  82.  
  83. Sub clear_msg_list ()
  84.    list1.visible = True
  85.    list1.empty = True
  86.    edit.message_text.Text = ""
  87. End Sub
  88.  
  89. Sub Combo1_Click ()
  90.    Call clear_msg_list
  91.  
  92.    If combo1.list(combo1.listindex) = "MAIL" Then
  93.       reading_mail = True
  94.       Call read_mail
  95.    Else
  96.       reading_mail = False
  97.       Call make_dir(combo1.list(combo1.listindex), dir_name$)
  98.    
  99.       file_name$ = Dir$(dir_name$ + "*.*")
  100.       While (Len(file_name$) <> 0)
  101.          Call extract_param(dir_name$ + file_name$, "Subject", subj_line$)
  102.          If Len(subj_line$) = 0 Then
  103.             subj_line$ = "<None>"
  104.          End If
  105.          Call extract_param(dir_name$ + file_name$, "From", author$)
  106.          If Len(author$) <> 0 Then
  107.             If (InStr(author$, "(") <> 0) And (InStr(author$, ")") <> 0) Then
  108.                author$ = Mid$(author$, InStr(author$, "(") + 1)
  109.                author$ = Left$(author$, InStr(author$, ")") - 1)
  110.             End If
  111.             subj_line$ = subj_line$ + "; " + Chr$(9) + author$
  112.          End If
  113.          list1.AddItem file_name$ + ": " + subj_line$
  114.          file_name$ = Dir$
  115.       Wend
  116.    End If
  117.    If list1.listcount <> 0 Then
  118.       list1.topindex = 0
  119.    End If
  120. End Sub
  121.  
  122. Sub Form_Load ()
  123.    new_line = Chr$(13) + Chr$(10)
  124.    Randomize
  125.    reply_written = False
  126.    If Len(Dir$("WRN.INI")) = 0 Then
  127.       MsgBox "WRN.INI not found in Current directory", 16, "Fatal Error"
  128.       End
  129.    End If
  130.    usenet_file$ = read_ini("UseNetFile")
  131.    news_dir$ = read_ini("NewsDir")
  132.    If Right$(news_dir$, 1) <> "\" Then
  133.       news_dir$ = news_dir$ + "\"
  134.    End If
  135.    msg_quote$ = read_ini("QuotePrefix")
  136.    static_file$ = read_ini("StaticFile")
  137.    user_id$ = read_ini("UserID")
  138.    registered = Val(read_ini("UserCode")) = calc_usercode(user_id$)
  139.    If Not registered Then
  140.       Select Case Int(Rnd * 4)
  141.       Case 0
  142.          nagbox.BTN_OK.caption = "Continue"
  143.       Case 1
  144.          nagbox.BTN_OK.caption = "Resume"
  145.       Case 2
  146.          nagbox.BTN_OK.caption = "Click"
  147.       Case Else
  148.          nagbox.BTN_OK.caption = "OK"
  149.       End Select
  150.       nagbox.Show
  151.       While nagbox.visible
  152.          dummy% = DoEvents()
  153.       Wend
  154.    End If
  155.    time_zone$ = read_ini("TimeZone")
  156.    site_name$ = read_ini("SiteID")
  157.    full_name$ = read_ini("UserName")
  158.    organisation$ = read_ini("Organisation")
  159.    out_path$ = read_ini("MailOutDir")
  160.    If Right$(out_path$, 1) <> "\" Then
  161.       out_path$ = out_path$ + "\"
  162.    End If
  163.    seq_path$ = read_ini("SeqFile")
  164.    out_news_list = read_ini("NewsOutList")
  165.    sign_filename = read_ini("SigFile")
  166.    news_reply$ = read_ini("NewsReply")
  167.    If Right$(news_reply$, 1) <> "\" Then
  168.       news_reply$ = news_reply$ + "\"
  169.    End If
  170.    uudecoder$ = read_ini("UUDecode")
  171.    batch_exe$ = read_ini("Batch")
  172.  
  173. Rem MsgBox "Finished with .INI, reading STATIC", 16, "Info"
  174.  
  175.    Call extract_param(static_file$, "user", mail_file$)
  176.    Call change_chars("/", "\", mail_file$)
  177.    mail_file$ = mail_file$ + "\" + user_id$ + "\mailbox"
  178.    If Dir$(mail_file$ + ".f") <> "" Then
  179.       message.combo1.list(0) = "MAIL"
  180.       gcnt = 1
  181.    Else
  182.       gcnt = 0
  183.    End If
  184.    text_changed = 0
  185.    usenet_fileid = fopen(usenet_file$, "r")
  186.    file_contents$ = Input$(LOF(usenet_fileid), #usenet_fileid)
  187.    Close #usenet_fileid
  188.  
  189.    If Len(Dir$(news_dir$ + "CONTROL\*.*")) <> 0 Then
  190.       Kill news_dir$ + "CONTROL\*.*"
  191.    End If
  192.    If Len(Dir$(news_dir$ + "MONITOR\*.*")) <> 0 Then
  193.       Kill news_dir$ + "MONITOR\*.*"
  194.    End If
  195.  
  196.    prev_eol = 0
  197.    eol = InStr(file_contents$, Chr$(10))
  198.    While eol <> 0
  199.       join_line$ = Mid$(file_contents$, prev_eol + 1, eol - prev_eol - 2)
  200.       If Left$(join_line$, 1) <> "#" And UCase$(Left$(join_line$, 7)) <> "DEFAULT" Then
  201.          pos = InStr(UCase$(join_line$), "/DIR=")
  202.          If pos <> 0 Then
  203.             join_line$ = Mid$(join_line$, pos + 6)
  204.             join_line$ = Left$(join_line$, InStr(join_line$, Chr$(34)) - 1)
  205.          Else
  206.             pos = InStr(join_line$, " ")
  207.             tab_pos = InStr(join_line$, Chr$(9))
  208.             If (tab_pos <> 0 And tab_pos < pos) Or pos = 0 Then
  209.                pos = tab_pos
  210.             End If
  211.  
  212.             If pos <> 0 Then
  213.                join_line$ = Left$(join_line$, pos - 1)
  214.             End If
  215.          End If
  216.          Call make_dir(join_line$, dir_name$)
  217.          If Len(Dir$(dir_name$ + "*.*")) <> 0 Then
  218.             message.combo1.list(gcnt) = join_line$
  219.             gcnt = gcnt + 1
  220.          End If
  221.       End If
  222.       prev_eol = eol
  223.       eol = InStr(eol + 1, file_contents$, Chr$(10))
  224.    Wend
  225.    If message.combo1.listcount = 0 Then
  226.       edit.Show 0
  227.    Else
  228.       message.Show 0
  229.       message.combo1.listindex = 0
  230.    End If
  231. End Sub
  232.  
  233. Sub Form_Resize ()
  234.    list1.width = message.scalewidth
  235.    combo1.width = message.scalewidth - catchup_btn.width
  236.    list1.height = message.scaleheight - catchup_btn.height
  237. End Sub
  238.  
  239. Sub Form_Unload (Cancel As Integer)
  240.    If reply_written Then
  241.       res = Shell(batch_exe, 1)
  242.    End If
  243.    End
  244. End Sub
  245.  
  246. Sub List1_DblClick ()
  247.    If list1.listcount = 0 Then
  248.       catchup_btn.value = True
  249.    End If
  250.  
  251.    If list1.listindex = -1 Then
  252.       list1.listindex = 0
  253.    End If
  254.    If combo1.list(combo1.listindex) = "MAIL" Then
  255.       reading_mail = True
  256.       msg_text$ = get_mail(list1.listindex)
  257.       subject$ = list1.list(list1.listindex)
  258.    Else
  259.       reading_mail = False
  260.       subject$ = list1.list(list1.listindex)
  261.       msg_filename$ = dir_name$ + Left$(subject$, InStr(subject$, ":") - 1)
  262.       subject$ = LTrim$(Mid$(subject$, InStr(subject$, ":") + 1))
  263.       If InStr(subject$, Chr$(9)) <> 0 Then
  264.          subject$ = Left$(subject$, InStr(subject$, Chr$(9)) - 2)
  265.       End If
  266.       msg_text$ = load_file(msg_filename$)
  267.    End If
  268.    Call